// MountainMgrBean.java // Stateless Session Bean Facade package dwarf; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; import java.util.*; public class MountainMgrBean implements SessionBean { static MountainEntityHome getMountainHome(){ try { InitialContext jndiContext = new InitialContext(); Object ref = jndiContext.lookup("dwarf/MountainEntity"); MountainEntityHome home = (MountainEntityHome)ref; return home; }catch (Exception e) { // hack throw new RuntimeException("Naming Failure: " + e.getMessage()); } } //-------------------------------------------------------------- private static Mountain toMountainBean(MountainEntity mountain){ DwarfEntity king = mountain.getKing(); Mountain m = new Mountain(); m.setMountainId(mountain.getMountainId().intValue()); m.setMountainName(mountain.getMountainName()); m.setLocation(mountain.getLocation()); if(king != null){ m.setKingId(king.getDwarfId().intValue()); m.setKingName(king.getDwarfName()); } return m; } //-------------------------------------------------------------- public List GetAll() throws javax.ejb.FinderException { MountainEntityHome home = getMountainHome(); java.util.Collection entityList = home.findAll(); List ret = new LinkedList(); for(Iterator i = entityList.iterator(); i.hasNext(); ){ MountainEntity mountain = (MountainEntity)i.next(); Mountain m = toMountainBean(mountain); ret.add(m); } return ret; } //-------------------------------------------------------------- public Mountain Get(int mountain_id) throws javax.ejb.FinderException { MountainEntityHome home = getMountainHome(); MountainEntity mountain = home.findByPrimaryKey(new Integer(mountain_id)); if(mountain != null){ return toMountainBean(mountain); }else{ return null; } } //-------------------------------------------------------------- public int Add(String mountainName, String location, int kingId) throws javax.ejb.FinderException, javax.ejb.CreateException { DwarfEntityHome dHome = DwarfMgrBean.getDwarfHome(); MountainEntityHome mHome = getMountainHome(); DwarfEntity king = null; if(kingId != 0){ king = dHome.findByPrimaryKey(new Integer(kingId)); } MountainEntity theM = mHome.create(mountainName,location,king); // work-around theM.setKing(king); // return id later... return 0; } //-------------------------------------------------------------- public void Update(int mountainId, String mountainName, String location, int kingId) throws javax.ejb.FinderException { DwarfEntityHome dHome = DwarfMgrBean.getDwarfHome(); MountainEntityHome mHome = MountainMgrBean.getMountainHome(); DwarfEntity king = null; if(kingId != 0){ king = dHome.findByPrimaryKey(new Integer(kingId)); } MountainEntity theMountain = mHome.findByPrimaryKey(new Integer(mountainId)); theMountain.setMountainName(mountainName); theMountain.setLocation(location); theMountain.setKing(king); } public void ejbCreate() {} public void ejbPostCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} }